// 配置axios的一些信息
// axios指的是当前引入的axios全局对象
axios.defaults.baseURL = "http://www.itcbc.com:8000" // 基准值(这种方式直接给axios对象赋值)

// 下面这种相当于创建一个axios实例 相当于new了一个新对象
// const service = axios.create({
//   baseURL: "http://www.itcbc.com:8000",
// })
// 请求拦截器- 请求发起之前出发
axios.interceptors.request.use((config) => {
  // 配置信息文件-> axios 默认信息 + axios请求信息
  config.headers["Authorization"] = localStorage.getItem("token") // 统一注入token
  return config // 必须return config
})
// 响应拦截器- 数据从服务器响应回来之后触发 进入 axios.then之前触发
axios.interceptors.response.use(
  (response) => response.data,
  (error) => {
    // 直接返回一个promie的reject
    if (error.response) {
      if (error.response.data.message === "身份认证失败") {
        // 此时表示token超时了 或者是假的
        localStorage.removeItem("token") // 删除掉token
        // window.location.href = "./login.html" // 直接跳转到登录页
        // 此时的window指的是 子页面的window对象-跳转就会导致子页面的跳转
        window.parent.location.href = "./login.html" // 直接让父窗口去跳转
      }
    }
    return Promise.reject(error)
  }
)

// promise
// new Promise(function (resolve, reject) {
//   resolve(123)
// })
//   .then((result) => {
//     // 此时想要出异常
//     return Promise.reject(new Error("我错了")) // 没有错误对象 就new一个
//   })
//   .catch((error) => {})
// axios.then
